package com.wicket.okrbff.biz.service;

import com.wicket.okrbff.biz.service.dto.req.*;
import com.wicket.okrbff.biz.service.dto.res.*;
import com.wicket.okrframework.integration.FwBaseOrgClient;
import com.wicket.okrframework.integration.dto.QueryDeptTreeListRespDto;
import com.wicket.okrframework.integration.dto.QueryDeptTreeListReqDto;
import com.wicket.okrbff.biz.service.dto.common.BffDeptDto;
import com.wicket.okrbff.common.dto.TreeNode;
import cn.hutool.core.bean.BeanUtil;
import java.util.ArrayList;
import java.util.stream.Collectors;
import java.util.List;
import com.wicket.okrbff.common.exception.Assert;
import com.wicket.okrbff.common.util.CommonFunctionHelper;
import com.wicket.okrframework.integration.dto.QueryMgtDeptTreeListRespDto;
import com.wicket.okrframework.integration.dto.QueryMgtDeptTreeListReqDto;
import com.wicket.okrframework.integration.dto.QueryDeptDetailRespDto;
import com.wicket.okrframework.integration.dto.QueryDeptDetailReqDto;
import com.wicket.okrframework.integration.dto.AddDeptRespDto;
import com.wicket.okrframework.integration.dto.AddDeptReqDto;
import com.wicket.okrframework.integration.dto.UpdateDeptRespDto;
import com.wicket.okrframework.integration.dto.UpdateDeptReqDto;
import com.wicket.okrframework.integration.FwBaseInductionRecordClient;
import com.wicket.okrframework.integration.dto.QueryInductionRecordInfoDetailComRespDto;
import com.wicket.okrframework.integration.dto.QueryInductionRecordInfoDetailComReqDto;
import com.wicket.okrframework.integration.dto.ArchiveDeptRespDto;
import com.wicket.okrframework.integration.dto.ArchiveDeptReqDto;
import com.wicket.okrframework.integration.dto.QueryDeptListComRespDto;
import com.wicket.okrframework.integration.dto.QueryDeptListComReqDto;
import com.wicket.okrframework.integration.dto.UpdateOrgRespDto;
import com.wicket.okrframework.integration.dto.UpdateOrgReqDto;
import com.wicket.okrframework.integration.dto.QueryInductionRecordListRespDto;
import com.wicket.okrframework.integration.dto.QueryInductionRecordListReqDto;
import com.wicket.okrframework.integration.dto.QueryOrgListRespDto;
import com.wicket.okrframework.integration.dto.QueryOrgListReqDto;
import com.wicket.okrframework.integration.FwBaseDivineDataClient;
import com.wicket.okrframework.integration.dto.AddGetUserIrInfoFromRedisRespDto;
import com.wicket.okrframework.integration.dto.AddGetUserIrInfoFromRedisReqDto;
import com.wicket.okrframework.integration.dto.QuerySubordinateDeptTreeListRespDto;
import com.wicket.okrframework.integration.dto.QuerySubordinateDeptTreeListReqDto;
import com.wicket.okrframework.integration.dto.QueryMidBaseCourseDetailBorderRespDto;
import com.wicket.okrframework.integration.dto.QueryMidBaseCourseDetailBorderReqDto;
import com.wicket.okrframework.integration.dto.QueryOrgDetailComRespDto;
import com.wicket.okrframework.integration.dto.QueryOrgDetailComReqDto;
import com.wicket.okrbff.biz.service.dto.common.BffOneLevelDeptDto;
import com.wicket.okrframework.integration.dto.JudgeEnterDeptMgtPowerRespDto;
import com.wicket.okrframework.integration.dto.JudgeEnterDeptMgtPowerReqDto;
import com.wicket.okrframework.integration.dto.QuerySupremeOrgDetailRespDto;
import com.wicket.okrframework.integration.dto.QuerySupremeOrgDetailReqDto;
import com.wicket.okrframework.integration.dto.RefreshOrgMgtCheckItemEtcRespDto;
import com.wicket.okrframework.integration.dto.RefreshOrgMgtCheckItemEtcReqDto;
import com.wicket.okrframework.integration.dto.QueryFirstDeptPowerManagePortalDetailRespDto;
import com.wicket.okrframework.integration.dto.QueryFirstDeptPowerManagePortalDetailReqDto;
import com.wicket.okrframework.integration.dto.UpdateOrgPresentMgtObjTypeRespDto;
import com.wicket.okrframework.integration.dto.UpdateOrgPresentMgtObjTypeReqDto;
import com.wicket.okrframework.integration.dto.DeleteDeptRespDto;
import com.wicket.okrframework.integration.dto.DeleteDeptReqDto;
import com.wicket.okrframework.integration.dto.QuerySubordinateDeptTreeListComBorderRespDto;
import com.wicket.okrframework.integration.dto.QuerySubordinateDeptTreeListComBorderReqDto;
import com.wicket.okrframework.integration.dto.QueryDeptSetDetailRespDto;
import com.wicket.okrframework.integration.dto.QueryDeptSetDetailReqDto;
import com.wicket.okrframework.integration.dto.QuerySubordinateDirectlyDeptListRespDto;
import com.wicket.okrframework.integration.dto.QuerySubordinateDirectlyDeptListReqDto;
import com.wicket.okrframework.integration.dto.QuerySuperiorDeptQueryDeptTreeTreeListRespDto;
import com.wicket.okrframework.integration.dto.QuerySuperiorDeptQueryDeptTreeTreeListReqDto;
import com.wicket.okrframework.integration.dto.QuerySuperiorDeptDirectlyDeptListRespDto;
import com.wicket.okrframework.integration.dto.QuerySuperiorDeptDirectlyDeptListReqDto;
import com.wicket.okrframework.integration.dto.QueryDeptDetailComBorderRespDto;
import com.wicket.okrframework.integration.dto.QueryDeptDetailComBorderReqDto;
import com.wicket.okrframework.integration.dto.QueryTypeFieldQueryDeptTreeTreeListRespDto;
import com.wicket.okrframework.integration.dto.QueryTypeFieldQueryDeptTreeTreeListReqDto;
import com.wicket.okrframework.integration.dto.QueryTypeFieldDirectlyDeptListRespDto;
import com.wicket.okrframework.integration.dto.QueryTypeFieldDirectlyDeptListReqDto;
import com.wicket.okrframework.integration.dto.JudgeOrgMaintenanceStatusRespDto;
import com.wicket.okrframework.integration.dto.JudgeOrgMaintenanceStatusReqDto;
import com.wicket.okrcomponent.integration.FwCompConfSchemeClient;
import com.wicket.okrcomponent.integration.dto.ObtainProgressLoadingBgComRespDto;
import com.wicket.okrcomponent.integration.dto.ObtainProgressLoadingBgComReqDto;
import com.wicket.okrframework.integration.dto.ImplementApiDockingPersonInfoRespDto;
import com.wicket.okrframework.integration.dto.ImplementApiDockingPersonInfoReqDto;
import com.wicket.okrframework.integration.dto.ImplementOrgImportDeptDataByApiRespDto;
import com.wicket.okrframework.integration.dto.ImplementOrgImportDeptDataByApiReqDto;
import com.wicket.okrapp.integration.FwAppMessageClient;
import com.wicket.okrcomponent.integration.FwCompMessageClient;
import com.wicket.okrcomponent.integration.dto.ImplementIniOrgWorkTaskMsgLocationByLoginComRespDto;
import com.wicket.okrcomponent.integration.dto.ImplementIniOrgWorkTaskMsgLocationByLoginComReqDto;
import com.wicket.okrframework.integration.dto.QueryMidBaseCourseDetailComRespDto;
import com.wicket.okrframework.integration.dto.QueryMidBaseCourseDetailComReqDto;
import com.wicket.okrapp.integration.dto.ImplementIniOrgAndDeptWorkTaskMsgLocComRespDto;
import com.wicket.okrapp.integration.dto.ImplementIniOrgAndDeptWorkTaskMsgLocComReqDto;

/**
 * @author ：
 * @date ：
 *
 *
 * @version 1.0
 */
public interface OrgService {
    /**
   * B1-3新增部门（管理）
   */
    BffAddDeptRespDto addDept(BffAddDeptReqDto reqDto);

    /**
   * B1-3查询部门树状结构列表
   */
    BffQueryDeptTreeListRespDto queryDeptTreeList(BffQueryDeptTreeListReqDto reqDto);

    /**
     * B1-3查询部门树状结构列表（边界）
     */
    BffQueryDeptBorderTreeListRespDto queryDeptBorderTreeList(BffQueryDeptBorderTreeListReqDto reqDto);

    /**
   * B1-3查询当前我的部门列表（边界）
   */
    BffQueryMyCurrentDeptListBorderRespDto queryMyCurrentDeptListBorder(BffQueryMyCurrentDeptListBorderReqDto reqDto);

    /**
   * B1-3取消冻结组织（管理）
   */
    BffUndoFreezeOrgRespDto undoFreezeOrg(BffUndoFreezeOrgReqDto reqDto);

    /**
   * B1-3冻结组织（管理）
   */
    BffFreezeOrgRespDto freezeOrg(BffFreezeOrgReqDto reqDto);

    /**
   * B1-3删除部门（管理）
   */
    BffDeleteDeptRespDto deleteDept(BffDeleteDeptReqDto reqDto);

    /**
   * B1-2查中基层部门(边界)
   */
    BffQueryMidBaseCourseDetailBorderRespDto queryMidBaseCourseDetailBorder(BffQueryMidBaseCourseDetailBorderReqDto reqDto);

    /**
   * B1-3查询部门树状结构列表（边界）
   */
    BffQueryDeptTreeListBorderRespDto queryDeptTreeListBorder(BffQueryDeptTreeListBorderReqDto reqDto);

    /**
   * B1-3查询树状结构下级部门列表（边界）
   */
    BffQuerySubordinateDeptTreeListBorderRespDto querySubordinateDeptTreeListBorder(BffQuerySubordinateDeptTreeListBorderReqDto reqDto);

    /**
   * B1-3查询组织列表（边界）
   */
    BffQueryOrgListBorderRespDto queryOrgListBorder(BffQueryOrgListBorderReqDto reqDto);


    /**
   * B1-3查询存档部门条件（管理）
   */
    BffQueryArchiveDeptRespDto queryArchiveDept(BffQueryArchiveDeptReqDto reqDto);

    /**
   * B1-3查询一级部门列表（边界）
   */
    BffQueryOneLevelDeptListRespDto queryOneLevelDeptList(BffQueryOneLevelDeptListReqDto reqDto);

    /**
   * B1-3存档部门（管理）
   */
    BffArchiveDeptRespDto archiveDept(BffArchiveDeptReqDto reqDto);

    /**
   * B1-3查询部门详情
   */
    BffQueryDeptDetailRespDto queryDeptDetail(BffQueryDeptDetailReqDto reqDto);

    /**
   * B1-3修改部门（管理）
   */
    BffUpdateDeptRespDto updateDept(BffUpdateDeptReqDto reqDto);

    /**
   * B1-3查询管理模式部门详情(管理)
   */
    BffQueryDeptMgtDetailRespDto queryDeptMgtDetail(BffQueryDeptMgtDetailReqDto reqDto);

    /**
   * B1-3查询管理模式部门树状结构(管理)
   */
    BffQueryDeptMgtTreeListRespDto queryDeptMgtTreeList(BffQueryDeptMgtTreeListReqDto reqDto);
/**
   * B1-3判断部门开始管理权限(管理)
   */
    BffJudgeEnterDeptMgtPowerRespDto judgeEnterDeptMgtPower(BffJudgeEnterDeptMgtPowerReqDto reqDto);
/**
   * B1-3查询最高组织详情
   */
    BffQuerySupremeOrgDetailRespDto querySupremeOrgDetail(BffQuerySupremeOrgDetailReqDto reqDto);
/**
   * B1-3更新组织管理检查项状态等(管理)
   */
    BffRefreshOrgMgtCheckItemEtcRespDto refreshOrgMgtCheckItemEtc(BffRefreshOrgMgtCheckItemEtcReqDto reqDto);
/**
   * B1查询一级部门权限管理入口详情(管理)
   */
    BffQueryFirstDeptPowerManagePortalDetailRespDto queryFirstDeptPowerManagePortalDetail(BffQueryFirstDeptPowerManagePortalDetailReqDto reqDto);
/**
   * B1-3修改组织当前管理对象部门等(管理)
   */
    BffUpdateOrgPresentMgtObjTypeRespDto updateOrgPresentMgtObjType(BffUpdateOrgPresentMgtObjTypeReqDto reqDto);
/**
   * B1-3查询组织使用锁定原因
   */
    BffQueryOrgUseLockCauseDetailRespDto queryOrgUseLockCauseDetail(BffQueryOrgUseLockCauseDetailReqDto reqDto);
/**
   * B1-查询组织架构发布进度详情
   */
    BffQueryOrgStrReleaseProgressDetailRespDto queryOrgStrReleaseProgressDetail(BffQueryOrgStrReleaseProgressDetailReqDto reqDto);
/**
   * B1-3暂停成员对外使用(管理)
   */
    BffSuspendExternalUseMembersRespDto suspendExternalUseMembers(BffSuspendExternalUseMembersReqDto reqDto);
/**
   * B1-3恢复成员对外使用(管理)
   */
    BffRecoveryExternalUseMembersRespDto recoveryExternalUseMembers(BffRecoveryExternalUseMembersReqDto reqDto);
/**
   * B1-3查询部门边界树状结构(边界)
   */
    BffQueryDeptBorderTreeListBorderRespDto queryDeptBorderTreeListBorder(BffQueryDeptBorderTreeListBorderReqDto reqDto);
/**
   * B1-3查询下级直属部门列表(边界)
   */
    BffQuerySubordinateDirectlyDeptListBorderRespDto querySubordinateDirectlyDeptListBorder(BffQuerySubordinateDirectlyDeptListBorderReqDto reqDto);
/**
   * B1-3部门ID查部门树状结构(边界)
   */
    BffQuerySuperiorDeptQueryDeptTreeTreeListBorderRespDto querySuperiorDeptQueryDeptTreeTreeListBorder(BffQuerySuperiorDeptQueryDeptTreeTreeListBorderReqDto reqDto);
/**
   * B1-3部门ID查询直属部门列表(边界)
   */
    BffQuerySuperiorDeptMayDivDeptListBorderRespDto querySuperiorDeptMayDivDeptListBorder(BffQuerySuperiorDeptMayDivDeptListBorderReqDto reqDto);
/**
   * B1-3类型字典查部门树状结构(管理)
   */
    BffQueryTypeFieldQueryDeptTreeTreeListRespDto queryTypeFieldQueryDeptTreeTreeList(BffQueryTypeFieldQueryDeptTreeTreeListReqDto reqDto);
/**
   * B1-3类型字典查直属部门列表(边界)
   */
    BffQueryTypeFieldDirectlyDeptListBorderRespDto queryTypeFieldDirectlyDeptListBorder(BffQueryTypeFieldDirectlyDeptListBorderReqDto reqDto);
/**
   * B1-3判断组织架构维护状态(公共)
   */
    BffJudgeOrgMaintenanceStatusComRespDto judgeOrgMaintenanceStatusCom(BffJudgeOrgMaintenanceStatusComReqDto reqDto);
/**
   * B1-执行API对接员工信息(管理)
   */
    BffImplementApiDockingPersonInfoRespDto implementApiDockingPersonInfo(BffImplementApiDockingPersonInfoReqDto reqDto);
/**
   * B1-执行API对接部门信息(管理)
   */
    BffImplementOrgImportDeptDataByApiRespDto implementOrgImportDeptDataByApi(BffImplementOrgImportDeptDataByApiReqDto reqDto);
    //
}
